home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-06-27 | 59.6 KB | 2,524 lines |
- ;tunnel
-
- rout ;when this is off, the routine-file will be
- ;assembled, on=testing
-
- ;debug ;when this is on, colors in the background will
- ;show how much time the routine needs.
-
- ;ntsctest ;when this is on, the routineplayer is in ntsc-mode
-
- ;ocs ;off=AGA,on=OCS, testing not possible on OCS !
-
- routinemode equ 0 ;the routinemode !
-
-
- ; VideoTracker AGA developer source 25-12-93
- ; 24-bits colors, Super-HiRes, HAM8, maximum burstmode (64 pixels aligned)
- ; wich makes low-resolution overscan a bit ugly.
- ; no "interactive" support anymore, it's only used by Kick 1.3 users.
-
- ; the first part of the source handles the things that are necessary to
- ; show the picture/copper and playing of the routine.
- ; the part between the "***" lines is the routine-source.
- ; at the bottom of the file, there are the necessary incbin-files who
- ; are needed to test the routine.
- ; these are saved with "save effect" in videotracker. they are raw
- ; data files which can be fonts,pictures,landscapes,vectorobjects
- ; etcetra.
- ; the incbin-files are put in the "variables" table, in the routine-
- ; player-handler
- ; the place where it's done can be found by searching for "!!!"
-
- ; opt a+ ;devpac 3 optimize
- opt o+
-
- vew_wid equ 48
- vew_hgt equ 290
- win_hgt equ 117
- win_str equ $1a
-
- ifd ocs
- pic_wid equ 4 ;wide in bytes
- pic_hgt equ 6 ;hoogte
- pic_dpt equ 8 ;number planes
- pic_ani equ 10 ;aantal effes (anim)
- pic_vew equ 12 ;viewmode
- pic_cycstr equ 14 ;cycle start (*4)
- pic_cycend equ 15 ;cycle end (*4)
- pic_cycspd equ 16 ;cycle speed (*4)
- pic_cycadd equ 17 ;cycle add (*4)
- pic_palnum equ 30 ;aantal kleuren
- pic_pal equ 32 ;palette start
- pic_palsiz equ 256*2 ;vaste palette size
- pic_raw equ pic_pal+pic_palsiz ;palette start
- endc
-
- ifnd ocs
- pic_wid equ 4 ;wide in bytes
- pic_hgt equ 6 ;hoogte
- pic_dpt equ 8 ;number planes
- pic_ani equ 10 ;aantal effes (anim)
- pic_vew equ 12 ;viewmode
- pic_cycstr equ 14 ;cycle start (*8)
- pic_cycend equ 15 ;cycle end (*8)
- pic_cycspd equ 16 ;cycle speed (*8)
- pic_cycadd equ 17 ;cycle add (*8)
- pic_widmod equ 46 ;animation-width modulo
- pic_future equ 50 ;free future space
- pic_palnum equ 62 ;aantal kleuren
- pic_pal equ 64 ;palette start
- pic_palsiz equ 256*4 ;vaste palette size (longwords)
- pic_raw equ pic_pal+pic_palsiz ;palette start
- endc
-
- var_len equ $300 ;lengte vartabel
-
- var__GfxBase equ $000 ;graphics lib
- var_pic1 equ $004 ;current picture
- var_anispd1 equ $008 ;animspeed
- var_anitel1 equ $00c ;animcount
- var_cprbck equ $010 ;copperback
- var_bck equ $014 ;background
- var_pic2 equ $018 ;current picture
- var_ntsc equ $01c ;ntsc/pal frequence
- var_lnd equ $020 ;landscape
- var_anilop1 equ $024
- var_rottrg equ $028 ;effect trigger
- var_txt1 equ $040 ;text
- var_txt16 equ 15*4+var_txt1
- var_vec1 equ $080 ;vectors
- var_vec16 equ 15*4+var_vec1
- var_fon1 equ $0c0 ;fonts
- var_fon16 equ 15*4+var_fon1
- var_cols1 equ $100 ;colorsets
- var_cols16 equ 15*4+var_cols1
- var_obj1 equ $180 ;objects
- var_obj16 equ 15*4+var_obj1
-
- ifd rout
- ;videotracker routine-test
-
- incdir "w:include/"
- include "exec/types.i"
- include "graphics/gfxbase.i"
- include "lvo/graphics_lib.i"
- incdir 'videotracker:effect/'
-
- SECTION 1,CODE
- tus
- ; move.l #rotpt1,curpic1 ;picture !!!
- ; move.l #rotpt1,curpal1 ;picture !!!
- bsr paltabres
-
- move.l ($4).w,a6
- sub.l a1,a1
- jsr -$126(a6) ;findtask
- move.l d0,curtsk
- move.l d0,a0
- move.l $b8(a0),tskpri
-
- lea dosnam,a1 ;doslib openen
- moveq.l #0,d0
- move.l (4).w,a6
- jsr -408(a6) ;openlib
- move.l d0,doslib
-
- bsr.s label5 ;videotracker opstarten
-
- move.l curtsk,a0
- move.l tskpri,$b8(a0)
- move.l ($4).w,a6
- jsr -$84(a6) ;forbid
-
- move.l doslib,a1
- move.l (4).w,a6
- jsr -414(a6) ;closelib
-
- moveq.l #0,d0
- rts
-
- label5
- move.l (4).w,a6 ;workbench gedoe
-
- move.b 530(a6),ntscmode ;50/60 hertz halen
-
- ifd ntsctest
- move.b #60,ntscmode ;60 hertz (ntsc)
- endc
-
- cmp.b #50,ntscmode ;ntsc ?
- beq.s str.ntsc
- move.l #vew_hgt-56,hogscr ;set NTSC screen hight
- str.ntsc
-
- lea cprjmp,a2 ;copjmp zetten !
- move.l #cprbck-8,d0
- move.w d0,6(a2)
- swap d0
- move.w d0,2(a2)
-
- lea cprbck-8,a2 ;copstr zetten !
- move.l #cpr,d0
- move.w d0,6(a2)
- swap d0
- move.w d0,2(a2)
-
- bsr cprsprrem ;sprites legen
-
- lea gfxnam,a1 ;graphics lib openen
- move.l (4).w,a6
- jsr -408(a6) ;openlib
- move.l d0,a6
- move.l d0,gfxlib
- move.l 38(a6),oldcprlist
-
- bset #1,$bfe001
- bsr copbuf ;copper vullen
-
- bsr sysoff
-
- gadrun
- btst #6,($bfe001).l
- bne gadrun
-
- scrend
- scrend.play
- bsr syson
-
- move.l gfxlib,a1
- move.l (4).w,a6
- jsr -414(a6) ;closelib
-
- scrend.qb
- moveq.l #0,d0
- rts
-
- ;vertical blank interrupt, no blits.
- ;handles counters,interlace,sprite
- ;level 3
-
- intvb
- bra.s intvb.cnt
- dc.l 'VIDU'
- dc.l 'LOOP'
- intvb.cnt
- movem.l d0-d7/a0-a6,-(sp)
- lea ($dff000).l,a6
-
- move.w $01e(a6),d0
- btst #5,d0 ;vblank ?
- bne.s intvb.vb
-
- bra.s intcop.end
-
- intvb.vb
- bsr grap
- bsr palctr ;palette zetten
- bsr.s copbuf ;copper vullen
-
- intvb.end
- move.w #$0020,$09c(a6) ;vb bit wissen
- movem.l (sp)+,d0-d7/a0-a6 ;multitask uit, shit !
- rte
-
- intcop.end
- movem.l (sp)+,d0-d7/a0-a6
- move.l intvbold,-(sp)
- rts
-
- ;transmission buffer empty routine, BLIT !
- ;handles routines,animations
-
- inttbe ;tbe interrupt
- movem.l d0-d7/a0-a6,-(sp)
- lea ($dff000).l,a6
-
- move.w $01e(a6),d0
- btst #0,d0 ;no tbe ?
- beq.s intdskblk
-
-
- btst #6,($bfe001).l ;muis ingedrukt ?
- beq.s inttbe.cop
- btst #2,($dff016).l
- beq.s inttbe.cop
-
- ifd debug
- move.w #$700,$dff180
- endc
-
- bsr rotply ;routineplayer BLIT !
- bsr.s copbuf ;copper vullen
-
- ifd debug
- move.w #$070,$dff180
- endc
-
- inttbe.cop
-
- inttbe.end
- move.w #$0001,$09c(a6)
- movem.l (sp)+,d0-d7/a0-a6
- rte
-
- intdskblk
- move.w #$0001,$09c(a6) ;be sure for no tbe handling
- movem.l (sp)+,d0-d7/a0-a6
- move.l inttbeold,-(sp)
- rts
-
-
- ;moves the copperbuffer to the copperlist
- ;sort of double buffering
-
- copbuf
- movem.l d0-d7/a0-a6,-(sp)
-
- lea ($dff000).l,a6
-
- copbuf.novb ;copperchange overslaan
- moveq.l #0,d0
- move.b $005(a6),d0
- lsl.w #8,d0
- moveq.l #0,d1
- move.b $006(a6),d1
- add.w d1,d0
-
- cmp.w #$4,d0 ;lower limit, all stations 100%
- blt copbuf.novb
-
- cmp.b #50,ntscmode
- beq.s copbuf.pal
- cmp.w #$133-72-8,d0 ;ntsc grens
- bge copbuf.novb
- bra.s copbuf.cont
- copbuf.pal
- cmp.w #$133-8,d0 ;pal grens
- bge copbuf.novb
- copbuf.cont
-
- lea gra.s,a0 ;buffer copieren
- lea cprbuf,a1
- copbuf_aga ;AGA stuff :)
- move.l #(gra.ql)/4-1,d0
- copbuf.a
- move.w 2(a0),2(a1)
- add.l #4,a0
- add.l #4,a1
- dbra d0,copbuf.a
-
- copbuf.end
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- ;goes back to the workbench
-
- syson
- movem.l d0-d7/a0-a6,-(sp)
-
- move.w #$0001,$dff09a ;tbeint uit
- move.l intvbold,($6c).w
- move.l inttbeold,($64).w
-
- move.l 4,a6
- jsr -138(a6) ;permit
-
- move.l gfxlib,a6
- jsr -462(a6) ;disownblitter
-
- move.l wbview,a1
- move.l gfxlib,a6
- jsr _LVOLoadView(a6) ; Fix view
- jsr _LVOWaitTOF(a6)
- jsr _LVOWaitTOF(a6) ; wait for LoadView()
-
- syson.ras
- cmp.b #$c0,$dff006 ;prevent copperjump
- bne syson.ras
-
- move.l gfxlib,a6
- move.l gb_copinit(a6),$dff080 ; Kick it into life
-
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- ;goes back to the gadgetscreen
-
- sysoff
- movem.l d0-d7/a0-a6,-(sp)
-
- move.l gfxlib,a6
- move.l gb_ActiView(a6),wbview ;current view
- sub.l a1,a1 ; clear a1
- jsr _LVOLoadView(a6) ; Flush View to nothing
- jsr _LVOWaitTOF(a6) ; Wait once
- jsr _LVOWaitTOF(a6) ; Wait again.
-
- move.l gfxlib,a6
- jsr -456(a6) ;ownblitter
-
- move.l 4,a6
- jsr -132(a6) ;forbid
-
- move.l ($6c).w,intvbold
- move.l #intvb,($6c).w
- move.l ($64).w,inttbeold
- move.l #inttbe,($64).w
- move.w #$8001,$dff09a ;tbeint aan
- bsr gracpr ;reset copper
- bsr copbuf ;copy copper
- move.l #cpr,$dff080
-
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- cprsprrem
- movem.l d0-d7/a0-a6,-(sp)
- lea cprspr,a0
- move.l #sprdat,d0
- move.w #7,d1
- cprsprrem.a
- move.w d0,3*2(a0)
- swap d0
- move.w d0,1*2(a0)
- swap d0
- add.l #8,a0
- dbra d1,cprsprrem.a
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- varset ;variablen neerzetten
- movem.l d0-d7/a0-a6,-(sp)
- move.l #var,a0
-
- move.l #cprbck,var_cprbck(a0)
- move.l gfxlib,var__GfxBase(a0)
- move.b ntscmode,var_ntsc(a0)
-
- move.l curpic1,var_pic1(a0) ;variabel
- move.l curpic2,var_pic2(a0) ;variabel
- move.w anispd1,var_anispd1(a0)
- move.w anitel1,var_anitel1(a0)
- move.b anilop1,var_anilop1(a0)
- move.l #rottrg,var_rottrg(a0)
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- ;this routine handles all videotracker-routines
-
- rotply
- movem.l d0-d7/a0-a6,-(sp)
-
- moveq.l #0,d0
-
- lea currot1,a2 ;routine 1
- move.w rotinf1,d0 ;routine info
- bsr.s rotplyr
-
- rotply.end
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- ;this routine handles 1 routine, BLIT !
-
- rotplyr
- movem.l d0-d7/a1-a6,-(sp)
-
- move.l #rot,(a2) ;routinestart address !!!
-
- ; move.b #50,ntscmode ;ntsc/pal hz
- clr.l curpic2 ;background picture
- move.w #1,anispd1 ;animationspeed
- clr.w anitel1 ;animation position
-
- lea var,a0 ;communication-table
- move.l #rotsrc,var_bck(a0) ;colorset !!!
- ; move.l #rotst1,var_cols1+4(a0) ;colorset !!!
- ; move.l #rotpt1,curpic1 ;picture !!!
- ; move.l #rotpt1,curpal1 ;picture !!!
- ; move.b #0,anilop1 ;animloop off/on !!!
- ; move.w #32,anispd1 ;animdelay !!!
- move.l #routinemode,d0 ;routinemode !!!
-
- sub.l a0,a0 ;picture info legen
-
- tst.l (a2) ;is er een routine ?
- beq rotplyr.end ;interlace handling
-
- move.l intdel,d2 ;delay
- move.l inttel,d1 ;teller
- cmp.w d2,d1
- blt rotplyr.end
- clr.l inttel
-
- bsr varset ;variabelen updaten
-
- move.l (a2),a1 ;routine halen
- move.l #var,a0 ;variablen tabel
-
- movem.l d3-d7/a1-a6,-(sp)
- moveq.l #0,d1 ;vars wissen
- moveq.l #0,d2
- moveq.l #0,d3
- moveq.l #0,d4
- moveq.l #0,d5
- moveq.l #0,d6
- moveq.l #0,d7
- sub.l a2,a2
- sub.l a3,a3
- sub.l a4,a4
- sub.l a5,a5
-
- move.l #rotc,a2
-
- jsr 4(a1) ;routine afwerken
- movem.l (sp)+,d3-d7/a1-a6
-
- ;Routine:
- ;
- ;Input:
- ;a0=variabelentabel
- ;d0=routinemode
- ;
- ;Output:
- ;a0=picture
- ;d1=copperlist
- ;d2=interruptdelay (NOT used till now)
-
- move.w #$0020,$dff09a ;vb off !
-
- move.l d2,intdel ;delay
-
- lea cprjmp,a3
- move.l #cprbck-8,d0
-
- cmp.l (a2),a1 ;routine ondertussen gewipt ?
- bne.s rotplyr.nocop
- tst.l d1 ;copperlist ?
- beq.s rotplyr.nocop
- move.l d1,d0
- rotplyr.nocop
- move.w d0,6(a3)
- swap d0
- move.w d0,2(a3)
-
- cmp.l #0,a0 ;picture ?
- ; beq.s rotplyr.endvb
- beq.s rotplyr.set
-
- move.l a0,curpal1 ;current palette
-
- ; move.l #rotpt1,a0 ;picture !!!
-
- move.l (a0),a1
- cmp.l #'PALE',(a1) ;palette ?
- beq rotplyr.set
-
- move.l a0,curpic1 ;current picture (cycle)
- tst.b rotdpl ;plane is geleverd
- beq.s rotplyr.set
- clr.l cycdel1 ;cycle info wissen
- clr.l 4+cycdel1
- clr.l curfrm1 ;curfrm1, altijd planes zetten
- rotplyr.set
- clr.b rotdpl
- clr.b dplctr
- bsr.s grap
- bsr grac ;colorset
- rotplyr.endvb
- move.w #$8020,$dff09a
- rotplyr.end
- movem.l (sp)+,d0-d7/a1-a6
- rts
-
- ;removes possible routine-coppers
-
- gracpr
- movem.l d0-d7/a0-a6,-(sp)
- lea cprjmp,a3
- move.l #cprbck-8,d0 ;copperlist resetten
- move.w d0,6(a3)
- swap d0
- move.w d0,2(a3)
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- grap ;d7=anim
- movem.l d0-d7/a0-a6,-(sp)
-
- clr.l d7
-
- tst.l curpic1 ;current picture ?
- beq grap.end
-
- move.l curpic1,a2 ;normal pic halen
-
- lea gracprscr,a1 ;window neerzetten
- move.l hogscr,d1
-
- move.w pic_hgt(a2),d3 ;pic hoogte
- move.w pic_vew(a2),d5
- btst #2,d5 ;interlace ?
- beq.s grap.nohi4
- lsr.w #1,d3 ;/2
- grap.nohi4
- cmp.w d3,d1
- bge.s grap.hog
- move.w d1,d3
- grap.hog
- sub.w d3,d1
- lsr.w #1,d1
- add.w #win_str,d1
- move.w d1,d2
- add.w d3,d2
-
- move.b d1,2(a1) ;y start
- move.b d2,6(a1) ;y end
-
- move.w pic_wid(a2),d4 ;pic breedte in bytes
- lsl.l #3,d4
-
- move.l #vew_wid*8,d0
- move.l #0,d1
- move.l #$61,d6
-
- cmp.w #40,pic_wid(a2) ;overscan ?
- ble.s grap.noov1
- move.l #$41,d6
- grap.noov1
-
- move.w pic_vew(a2),d5
- btst #15,d5 ;hires ?
- beq.s grap.nohi2
-
- move.l #(vew_wid)*8*2,d0
- move.l #1,d1
- move.l #$61,d6
-
- cmp.w #80,pic_wid(a2) ;overscan ?
- ble.s grap.nohi2
- move.l #(vew_wid)*8*2,d0
- move.l #$51,d6
-
- bra.s grap.noshi2
- grap.nohi2
- btst #6,d5 ;super hires ?
- beq.s grap.noshi2
-
- move.l #(vew_wid)*8*4,d0
- move.l #2,d1
- move.l #$61,d6
-
- cmp.w #80*2,pic_wid(a2) ;overscan ?
- ble.s grap.noshi2
- move.l #(vew_wid)*8*4,d0
- move.l #$51,d6
-
- grap.noshi2
-
- clr.w d5
- cmp.w d0,d4 ;breeder dan scherm ?
- ble.s grap.c
- move.w d4,d5
- move.w d0,d4
- sub.w d0,d5 ;modulo
- lsr.w #3,d5 ;/8
- grap.c
- lsr.w d1,d0
- lsr.w d1,d4
-
- move.w d0,d2
- sub.w d4,d2
- lsr.w #1,d2 ;/2
-
- add.w d6,d2
- move.b d2,3(a1) ;x start
- move.w d2,d3 ;d3 bewaren !
-
- add.w d4,d2 ;d4 bewaren !
- move.b d2,7(a1) ;x end
-
- move.w pic_vew(a2),d6
- btst #15,d6 ;hires ?
- beq.s grap.nohi5
- add.l d4,d4 ;*2
- bra.s grap.noshi5
- grap.nohi5
- btst #6,d6 ;super hires ?
- beq.s grap.noshi5
- add.l d4,d4 ;*4
- add.l d4,d4
- grap.noshi5
-
- move.l d7,-(sp)
- move.w pic_vew(a2),d6
- move.l #17,d0
- move.l #4,d1 ;ecs 1
- move.l #3,d7
-
- btst #15,d6 ;hires ?
- beq.s grap.nohi3
- move.l #17,d0 ;ecs 9
- move.l #4,d1 ;ecs 2
- move.l #2,d7
- bra.s grap.noshi3
- grap.nohi3
- btst #6,d6 ;super hires ?
- beq.s grap.noshi3
- move.l #17,d0 ;ecs 9
- move.l #4,d1 ;ecs 2
- move.l #1,d7
- grap.noshi3
- sub.w d0,d3
- lsr.w #1,d3
- move.w d3,10(a1) ;ddfstrt
-
- move.w d4,d2 ;pic breedte in pixels
- lsr.w #4,d2 ;/16
- sub.w d1,d2 ;-1
-
- lsl.w d7,d2 ;*8
- add.w d2,d3
- move.w d3,14(a1) ;ddfstop
- move.l (sp)+,d7
-
- lea pic_raw(a2),a0
-
- moveq.l #0,d2
- move.w pic_dpt(a2),d2
- sub.l #1,d2
- muls pic_wid(a2),d2
- add.w d2,d5
-
- move.w pic_vew(a2),d2 ;viewmode add
- btst #2,d2
- beq.s grap.nolace4
-
- moveq.l #0,d2
- move.w pic_dpt(a2),d2
- muls pic_wid(a2),d2
- add.w d2,d5 ;interlace gedoe
- grap.nolace4
-
- lea gracprbpl,a4 ;iffpln neerzetten
- lea gracprpln,a0 ;iffpln neerzetten
- moveq.l #0,d2
- move.w pic_dpt(a2),d2 ;plnnummer 1 halen
- move.l #8,d6 ;copper step !
-
- tst.l curpic2 ;2de picture ?
- bne.s grap.pic2
- grap.nopic2
- move.w d5,34(a1) ;modulo oneven zetten
- bra grap.nodpl
- grap.pic2
- move.l curpic2,a3 ;oneven plane
- move.l curpic2+4,a6 ;oneven plane
- move.l currot2,a5 ;oneven plane
- clr.l curpic2 ;mischien niet goed
- clr.l curpic2+4 ;mischien niet goed
- clr.l curpal2 ;mischien niet goed
- clr.l currot2 ;mischien niet goed
-
- cmp.l curpic1,a3 ;picture hetzelfde ?
- beq.s grap.nopic2
-
- cmp.l #0,currot1 ;routine ?
- beq.s grap.norot
- cmp.l currot1,a5 ;routine hetzelfde ?
- beq.s grap.nopic2
- grap.norot
- cmp.b #4,d2 ;> 16 kleuren ? (AGA)
- bgt grap.nopic2
-
- move.w pic_dpt(a3),d3 ;plnnummer 2 halen
- cmp.b d2,d3 ;gelijke plnummers ?
- bne.s grap.nopic2
- move.w pic_vew(a2),d1
- cmp.w pic_vew(a3),d1 ;view gelijk ?
- bne.s grap.nopic2
-
- move.w pic_vew(a2),d1 ;groter dan view test
- btst #6,d1 ;super hires ?
- beq.s grap.nohi2a
- move.l #vew_wid*4,d1
- bra.s grap.nohi2b
- grap.nohi2a
- btst #15,d1 ;hires ?
- beq.s grap.noshi2a
- move.l #vew_wid*2,d1
- bra.s grap.nohi2b
- grap.noshi2a
- move.l #vew_wid,d1
- grap.nohi2b
- cmp.w pic_wid(a2),d1 ;breder dan view ?
- bgt.s grap.small
- cmp.w pic_wid(a3),d1 ;breder dan view ?
- bgt.s grap.small
-
- move.w pic_vew(a2),d1
- btst #2,d1
- beq.s grap.nolace8a
- move.l hogscr,d1
- add.l d1,d1
- bra.s grap.nolace8b
- grap.nolace8a
- move.l hogscr,d1
- grap.nolace8b
- cmp.w pic_hgt(a2),d1 ;hoger dan view ?
- bgt.s grap.small
- cmp.w pic_hgt(a3),d1 ;hoger dan view ?
- bgt.s grap.small
- bra.s grap.big
-
- grap.small
- move.w pic_hgt(a2),d1 ;wid+hgt<vew
- cmp.w pic_hgt(a3),d1 ;hoogte gelijk ?
- bne grap.nopic2
- move.w pic_wid(a2),d1
- cmp.w pic_wid(a3),d1 ;breedte gelijk ?
- bne grap.nopic2
-
- grap.big
- move.l a3,curpic2 ;toch wel goed !
- move.l a6,curpic2+4
- move.l a3,curpal2
- move.l a5,currot2
-
- tst.b dplctr ;dual playfield al gezet ?
- beq grap.nocop
-
- move.w 30(a1),34(a1) ;modulo copieren
-
- move.w 2(a4),d1 ;bplcon0
- btst #10,d1 ;al dual playfield ?
- beq.s grap.ta
-
- move.w 2(a0),10(a0) ;plane 0>1 copieren
- move.w 6(a0),14(a0)
-
- move.w 18(a0),26(a0) ;plane 2>3 copieren
- move.w 22(a0),30(a0)
-
- move.w 34(a0),42(a0) ;plane 4>5 copieren
- move.w 38(a0),46(a0)
-
- move.w 50(a0),58(a0) ;plane 6>7 copieren
- move.w 54(a0),62(a0)
-
- bra.s grap.tb
- grap.ta
- move.w 24(a0),58(a0) ;plane 3>7 copieren
- move.w 28(a0),62(a0)
-
- move.w 18(a0),42(a0) ;plane 2>5 copieren
- move.w 22(a0),46(a0)
-
- move.w 10(a0),26(a0) ;plane 1>3 copieren
- move.w 14(a0),30(a0)
-
- move.w 2(a0),10(a0) ;plane 0>1 copieren
- move.w 6(a0),14(a0)
-
- grap.tb
- move.l #palette,a3 ;palette copieren
-
- move.w #16-1,d1
- grap.pal
- move.l (a3)+,60(a3)
- dbra d1,grap.pal
-
- grap.nocop
- add.w d3,d2 ;aantal bitplanes
- cmp.w #8,d2 ;8 bitplanes ?
- blt grap.no8planes2
- move.w #%10000,d2 ;only bit 4
- bra grap.8planes2
- grap.no8planes2
- lsl.w #8,d2
- lsl.w #4,d2
- grap.8planes2
- or.w #$400,d2 ;dual playfield aan
- move.w d2,2(a4) ;bplcon0
-
- movem.l d0-d7/a0-a6,-(sp)
-
- move.l curpic,a2 ;animpic ?
- move.l curfrm,d7
- cmp.l #0,a2
- bne.s grap.noanipic
-
- move.l curpic2,a2 ;normal pic ?
- move.l curfrm2,d7
- cmp.l #0,a2
- beq.s grap.nodplpic
-
- grap.noanipic
- add.l d6,a0
- add.w d6,d6
- bsr.s grappln ;a2,d6,d7,d0
- grap.nodplpic
- movem.l (sp)+,d0-d7/a0-a6
- add.w d6,d6
- bra.s grap.nodpla
-
-
- grap.nodpl ;geen dual playfield
- cmp.w #8,d2 ;8 bitplanes ?
- blt grap.no8planes
- move.w #%10000,d2 ;only bit 4
- bra grap.8planes
- grap.no8planes
- lsl.w #8,d2
- lsl.w #4,d2
- grap.8planes
- move.w d2,2(a4) ;bplcon0
-
- grap.nodpla
- move.w d5,30(a1) ;modulo even
-
- moveq.l #0,d3
- add.w pic_vew(a2),d3 ;viewmode add
- moveq.l #0,d2
- move.w 2(a4),d2
- or.l d3,d2
-
- ifd gui
- tst.b genlck
- bne grap.genset
- endc
-
- or.l #$100,d2 ;genlock off ($302)
-
- ifd gui
- bra grap.gencont
- grap.genset
- or.l #$102,d2 ;genlock on ($302)
- grap.gencont
- endc
-
- move.w d2,2(a4)
-
- bsr.s grappln ;a2,d6,d7,d0
-
- grap.end
-
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
-
- ;sets on of the 2 possible pictures to the copper
- ;handles interlace
-
- ;d7=framenummer
- ;d6=copperliststap
- ;d0=raw planes positie
- ;a2=current picture
- grappln ;planes invullen
- movem.l d0-d7/a0-a6,-(sp)
-
- lea pic_raw(a2),a1
- move.l a1,d0 ;raw planes
-
- moveq.l #0,d2 ;x*y
- move.w pic_wid(a2),d2
- lsr.l #1,d2 ;/2
- moveq.l #0,d3
- move.w pic_hgt(a2),d3
- muls d3,d2
-
- move.l d2,d4
- add.l d2,d2
-
- move.w pic_dpt(a2),d3
- muls d3,d4 ;hele picture size
- muls d7,d4 ;frame*size d7 !
-
- add.l d4,d4
-
- add.l d4,d0
-
- move.l #vew_wid,d5 ;max x view
- move.l hogscr,d4 ;max y view
- move.w pic_vew(a2),d1 ;viewmode add
- btst #2,d1
- beq.s grappln.nolace
- add.l d4,d4 ;max y view
- grappln.nolace
- btst #15,d1 ;hires ?
- beq.s grappln.nohi
- move.l #vew_wid*2,d5 ;max x view
- bra.s grappln.noshi
- grappln.nohi
- btst #6,d1 ;super hires ?
- beq.s grappln.noshi
- move.l #vew_wid*4,d5 ;max x view
- grappln.noshi
-
- moveq.l #0,d3 ;scherm centreren
- move.w pic_wid(a2),d3 ;pic breedte in bytes
- cmp.w d5,d3 ;breder dan scherm ?
- ble.s grappln.qa
- sub.w d5,d3 ;-scherm breedte
- lsr.w #2,d3 ;/4
-
- add.l d3,d3
-
- add.l d3,d0
- grappln.qa
- move.w pic_hgt(a2),d3 ;pic hoogte in bytes
- cmp.w d4,d3 ;hoger dan scherm ?
- ble.s grappln.qb
- sub.w d4,d3 ;-scherm breedte
- lsr.w #1,d3 ;/2
- moveq.l #0,d5
- move.w pic_wid(a2),d5 ;pic breedte in bytes
- muls pic_dpt(a2),d5
- muls d5,d3
- add.l d3,d0
- grappln.qb
- moveq.l #0,d2
- move.w pic_wid(a2),d2
-
- move.w pic_vew(a2),d5 ;interlace flipping ?
- btst #2,d5
- beq.s grappln.nolac7b
-
- move.w $04(a6),d5 ;even/oneven ?
- btst #15,d5
- beq.s grappln.nolac7b
-
- moveq.l #0,d3
- move.w pic_wid(a2),d3
- muls pic_dpt(a2),d3
- add.l d3,d0
- grappln.nolac7b
-
- move.w pic_dpt(a2),d1 ;plnnummer 1 halen
- tst.w d1 ;0 planes ?
- beq grappln.end
- sub.w #1,d1
- grappln.a
- move.w d0,3*2(a0)
- swap d0
- move.w d0,1*2(a0)
- swap d0
- add.l d6,a0 ;d6=copper step !
- add.l d2,d0
- dbra d1,grappln.a
-
- cmp.w #8,pic_dpt(a2) ;8 planes ?
- bne grappln.noham8
- btst #3,pic_vew(a2) ;ham ?
- beq grappln.noham8
-
- move.w -14(a0),d0 ;get 6
- move.w -10(a0),d1
- move.w -6(a0),d2 ;get 7
- move.w -2(a0),d3
- move.w -18(a0),-2(a0) ;5>7
- move.w -22(a0),-6(a0) ;5>7
- move.w -26(a0),-10(a0) ;4>6
- move.w -30(a0),-14(a0) ;4>6
- move.w -34(a0),-18(a0) ;3>5
- move.w -38(a0),-22(a0) ;3>5
- move.w -42(a0),-26(a0) ;2>4
- move.w -46(a0),-30(a0) ;2>4
- move.w -50(a0),-34(a0) ;1>3
- move.w -54(a0),-38(a0) ;1>3
- move.w -58(a0),-42(a0) ;0>2
- move.w -62(a0),-46(a0) ;0>2
- move.w d0,-62(a0) ;6>0
- move.w d1,-58(a0) ;6>0
- move.w d2,-54(a0) ;7>1
- move.w d3,-50(a0) ;7>1
- grappln.noham8
-
- grappln.end
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- ;sets palettes to palette-buffer
-
- grac
- movem.l d0-d7/a0-a6,-(sp)
-
- lea curpal1,a3 ;palette 1
- move.l #palette,a1
- bsr.s gracfrm
-
- lea curpal2,a3 ;palette 2 (dpl)
- move.l #16*4+palette,a1
- bsr.s gracfrm
-
- bsr palctr ;palette-buffer to copper
- grac.end
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- ;moves palette from picture to palette-buffer
-
- gracfrm
- movem.l d0-d7/a0-a6,-(sp)
- tst.l (a3) ;palette aanwezig ?
- beq.s gracfrm.end
-
- move.l (a3),a2 ;current palette
-
- cmp.l #'PALE',(a2) ;palette ?
- bne.s gracfrm.pict
- lea 6(a2),a0 ;palette
- move.w 4(a2),d0 ;aantal kleuren
- bra.s gracfrm.col
- gracfrm.pict
- cmp.l #'ANIM',(a2) ;animatie ?
- bne.s gracfrm.noanim
-
- moveq.l #0,d1
- move.w pic_ani(a2),d1
- bclr #7,d1 ;behandelbit weghalen
-
- moveq.l #0,d3
- move.w pic_wid(a2),d3
- lsr.w #1,d3 ;/2
- muls pic_hgt(a2),d3
- muls pic_dpt(a2),d3
-
- add.l d3,d3
-
- add.l #pic_raw,d3
- move.l d3,d5
-
- btst #0,d1
- bne.s gracfrm.buf2
- moveq.l #0,d5
- gracfrm.buf2
- add.l d5,a2
- gracfrm.noanim
- lea pic_pal(a2),a0 ;palette
- move.w pic_palnum(a2),d0
-
- tst.w d0 ;0 planes ?
- beq.s gracfrm.end
- gracfrm.col
- gracfrm.fa
- move.l (a0)+,(a1)+
- dbra d0,gracfrm.fa
- gracfrm.end
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- ;handles colorcycling in the palette-buffer
-
- palcycctr
- movem.l d0-d7/a0-a6,-(sp)
-
- move.l curpic1,a2 ;current raw
- cmp.l #0,a2
- beq.s palcycctr.qb
- lea cycdel1,a3 ;cycle delays
- move.l #paltab,a4
- bsr palcyc
- palcycctr.qb
- move.l curpic2,a2 ;current raw
- cmp.l #0,a2
- beq.s palcycctr.c
- lea cycdel2,a3 ;cycle delays
- move.l #16*2+paltab,a4
- bsr palcyc
- palcycctr.c
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- ;copies palette-buffer to copper
-
- palctr
- movem.l d0-d7/a0-a6,-(sp)
-
- lea gracprcol,a1 ;AGA
- move.l #palette,a0
- move.l #paltab,a2
- move.w #8-1,d6
- palctr.e
- move.w #32-1,d7
- palctr.d
- move.w (a2)+,d0 ;get cycle-position
- move.w (a0,d0),6(a1) ;high RGB bits
- move.w 2(a0,d0),((32+1)*4)+6(a1) ;low RGB bits
- add.l #4,a1
- dbra d7,palctr.d
- add.l #((32+2)*4),a1
- dbra d6,palctr.e
- palctr.end
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- ;reset palette tabel, for proper color cycling
-
- paltabres
- movem.l d0-d7/a0-a6,-(sp)
- lea paltab,a0
- clr.l d0
- move.w #256-1,d1
- paltabres.a
- move.w d0,(a0)+
- add.w #4,d0 ;aga color words, high RGB + low RGB
- dbra d1,paltabres.a
- paltabres.end
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- ;colorcyclinghandling of a palette
-
- palcyc
- movem.l d0-d7/a0-a6,-(sp)
- move.w #4-1,d7 ;4 cycles
- palcyc.d
- tst.w (a3)+ ;delay klaar ?
- bne.s palcyc.c
-
- moveq.l #0,d1
- move.b pic_cycstr(a2),d1 ;start color
- lsl.b #1,d1 ;*2
-
- moveq.l #0,d2
- move.b pic_cycend(a2),d2 ;end color
- lsl.b #1,d2 ;*2
-
- moveq.l #0,d3
- move.b pic_cycadd(a2),d3 ;richting
-
- move.l a4,a0 ;palette pointer
- move.l a0,a1
- add.l d1,a0 ;startcolor
- add.l d2,a1 ;endcolor
-
- cmp.b #1,d3 ;omhoog
- beq.s palcyc.up
- cmp.b #3,d3 ;omlaag
- beq.s palcyc.down
- bra.s palcyc.i
-
- palcyc.up ;kleuren copieren
- move.w (a1),d4 ;laatst color bewaren
- palcyc.f ;kleuren copieren
- cmp.l a0,a1
- beq.s palcyc.fa
- move.w -(a1),2(a1)
- bra.s palcyc.f
- palcyc.fa
- move.w d4,(a1)
- bra.s palcyc.g
-
- palcyc.down
- move.w (a0),d4 ;laatst color bewaren
- palcyc.h ;kleuren copieren
- cmp.l a0,a1
- beq.s palcyc.ha
- move.w 2(a0),(a0)+
- bra.s palcyc.h
- palcyc.ha
- move.w d4,(a1)
-
- palcyc.g
- move.b pic_cycspd(a2),-1(a3) ;delay zetten
- bra.s palcyc.i
- palcyc.c
- sub.w #1,-2(a3) ;cycle delay aftellen
- palcyc.i
- add.l #4,a2 ;next cycle info
- dbra d7,palcyc.d
-
- palcyc.qb
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
-
-
- SECTION variabelen,DATA
-
- cnop 0,2
- curtsk dc.l 0
- tskpri dc.l 0
- duplok dc.l 0
- inttel dc.l 0
- intdel dc.l 0
-
- form dc.l 0
- ifffil dc.l 0
- intvbold dc.l 0
- inttbeold dc.l 0
- patpos dc.l 0
- gfxlib dc.l 0
- doslib dc.l 0
- wbview dc.l 0
- mt_data dc.l 0
- memvid dc.l 0
- oldcprlist dc.l 0
- hogscr dc.l vew_hgt
-
- inspos dc.l -1
- anispd1 dc.w 1 ;nooit op 0 !
- anispd2 dc.w 1
-
- cnop 0,2
- varclr.s ;start wissen
- oldrot dc.l 0
- curpic dc.l 0
- curfrm dc.l 0
- cycdel1 ds.w 4
- cycdel2 ds.w 4
-
- rotinf1 dc.w 0
- rotinf2 dc.w 0
-
- effspd dc.w 0
- efflop dc.b 0
- anilop1 dc.b 0
- anilop2 dc.b 0
- anipal1 dc.b 0
- anipal2 dc.b 0
- rotdpl dc.b 1
- rottrg dc.b 1
- dplctr dc.b 0
- cnop 0,2
-
- insdat ds.l 4
- inspri dc.l 0
- instel dc.w 0
-
- cureff dc.l 0
- efftel dc.w 0
-
- curpal1 dc.l 0
- curpal2 dc.l 0
- currot1 dc.l 0
- currot2 dc.l 0
- curpic1 dc.l 0
- curpic2 dc.l 0
- anitel1 dc.w 0
- anitel2 dc.w 0
- curfrm1 dc.l 0
- curfrm2 dc.l 0
- oldfrm1 dc.l 0
- oldfrm2 dc.l 0
-
- varclr.e
- dc.l 0 ;wisruimte
-
- varclr.ql equ varclr.e-varclr.s ;wislengte
-
- ntscmode dc.b 0
- end dc.b 0
-
- pronam dc.b 'VideoTracker',0
- cnop 0,2
- dosnam dc.b 'dos.library',0
- cnop 0,4
- gfxnam dc.b 'graphics.library',0
- cnop 0,4
-
- cnop 0,4
- gra.s ;copperlist edit buffer
- gracprscr
- dc.w $8e,$3381,$90,$81c1,$92,$003c,$94,$00d0
- gracprbpl
- dc.w $100,$0000,$102,$0000,$104,$0020
- dc.w $108,$0000,$10a,$0000,$1fc,$0003
- gracprpln
- dc.w $e0,$0000,$e2,$0000 ;1
- dc.w $e4,$0000,$e6,$0000 ;2
- dc.w $e8,$0000,$ea,$0000 ;3
- dc.w $ec,$0000,$ee,$0000 ;4
- dc.w $f0,$0000,$f2,$0000 ;5
- dc.w $f4,$0000,$f6,$0000 ;6
- dc.w $f8,$0000,$fa,$0000 ;7
- dc.w $fc,$0000,$fe,$0000 ;8
- gracprcol
- dc.w $106,$0000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$0200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$2000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$2200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$4000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$4200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$6000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$6200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$8000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$8200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$a000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$a200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$c000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$c200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$e000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$e200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$1000
-
- cprjmp
- dc.w $080,0,$082,0
- gra.e
- gra.ql equ gra.e-gra.s ;block lengte
-
- palette ds.l 256 ;palette 24-bits, far out !
- paltab ds.w 256 ;palette cycle-tabel
-
- cnop 0,8
- var ds.b $300 ;variabelen voor routines
-
-
- SECTION copper,DATA_c
-
- cpr ;real copperlist
- dc.w $0001,$fffe
- dc.w $09c,$8001 ;tbeint
- cprspr
- dc.w $120,$0000,$122,$0000
- dc.w $124,$0000,$126,$0000
- dc.w $128,$0000,$12a,$0000
- dc.w $12c,$0000,$12e,$0000
- dc.w $130,$0000,$132,$0000
- dc.w $134,$0000,$136,$0000
- dc.w $138,$0000,$13a,$0000
- dc.w $13c,$0000,$13e,$0000
-
- cprbuf
- dc.w $8e,$3381,$90,$81c1,$92,$003c,$94,$00d0
- dc.w $100,$9000,$102,$0000,$104,$0020
- dc.w $108,$0000,$10a,$0000,$1fc,$0003
-
- dc.w $e0,$0000,$e2,$0000 ;0
- dc.w $e4,$0000,$e6,$0000 ;1
- dc.w $e8,$0000,$ea,$0000 ;2
- dc.w $ec,$0000,$ee,$0000 ;3
- dc.w $f0,$0000,$f2,$0000 ;4
- dc.w $f4,$0000,$f6,$0000 ;5
- dc.w $f8,$0000,$fa,$0000 ;6
- dc.w $fc,$0000,$fe,$0000 ;7
-
- dc.w $106,$0000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$0200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$2000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$2200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$4000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$4200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$6000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$6200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$8000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$8200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$a000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$a200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$c000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$c200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$e000
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
- dc.w $106,$e200
- dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- dc.w $106,$1000
-
- dc.w $080,0,$082,0
- cprbuf.e
-
- dc.w $088,$0000 ;copjmp2
- dc.w $080,0,$082,0 ;moet achter cprbck blijven !
- cprbck
- sprdat
- dc.w $ffff,$fffe
-
-
- ; SECTION 10,CODE
- endc
-
- ; this is the routine-source
- ;**********************************************************************
-
-
- SECTION 10,code
- rotp
-
- ;calc ;on=calculate tunnel-data,off=play tunnel
-
- rottun_wid equ 320
- rottun_hgt equ 256
-
- ifd calc
- rotpic_wid equ 20
- rotpic_hgt equ 128
- rotpic_dpt equ 1
- endc
-
- ifnd calc
- rotpic_wid equ 40
- rotpic_hgt equ 256
- rotpic_dpt equ 1
- rotcop_hgt equ 113
- rotcop_dpt equ 5
- endc
-
- ; Input:
- ; a0=variabelen tabel
- ; d0=routinfo
-
- ; Output:
- ; a0=picture
- ; d1=copperlist
-
-
- rot
- ifnd ocs
- dc.l 'ROTA'
- endc
- ifd ocs
- dc.l 'ROTO'
- endc
- movem.l d2-d7/a1-a6,-(sp)
-
- lea ($dff000).l,a6 ;hardware
- lea rot(pc),a5 ;prog base
- move.l a2,rotchp-rot(a5)
-
- move.l #32,d2
- bsr getd7
-
- rot.ea
- ; move.l #4,d2 ;hoogte
- ; bsr getd7
- ; muls #1380,d7
- ; move.l d7,variabele1-rot(a5)
-
- ; move.l #1,d2 ;breedte
- ; bsr getd7
- ; muls #6,d7
- ; move.l d7,variabele7-rot(a5)
-
- rot.end
-
- ifnd calc
- move.l var_cprbck(a0),d1
- sub.l #8,d1
-
- move.l rotchp-rot(a5),a1
- add.l #rotcop1-rotc,a1 ;copperjump adres zetten
- ; move.l rotcopbuf-rot(a5),d2 ;double buffer
- ; add.l d2,a1
-
- move.w d1,6(a1)
- swap d1
- move.w d1,2(a1)
-
- ; move.l a1,a2
- ; add.l #rotcprbck1ntsc,a2
- ; move.l a1,a3
- ; add.l #rotcprend1ntsc,a3
- ; move.l a1,a4
- ; add.l #rotcprbck1,a4
-
- ; cmp.b #50,var_ntsc(a0) ;ntsc/pal frequence
- ; bne rot.ntsc
-
- ; move.l #$9029fffe,(a2) ;reset ntsc split
- ; move.l #$fa29fffe,(a3) ;reset ntsc end
- ; add.l #rotcprbck1,a1
- ; move.l #$c825fffe,d0
- ; bra rot.split
- ;rot.ntsc
- ; move.l #$c825fffe,(a4) ;reset pal split
- ; move.l #$00880000,(a3) ;set ntsc end
- ; add.l #rotcprbck1ntsc,a1
- ; move.l #$9029fffe,d0
-
- ;rot.split
- ; move.l #$00880000,(a1) ;set break
- ; move.l var_cprbck(a0),a2
- ; cmp.b #$ff,(a2) ;menu uit ?
- ; bne rot.a
- ; move.l d0,(a1)
- rot.a
- endc
-
- ifd calc
- tst.b rotcalcmode
- bne rot.calcready
- endc
- bsr rotint ;eventueel init
- rot.calcready
-
- ifnd calc
- lea rotaddtab(pc),a0
- lsl.l #2,d0
- move.l (a0,d0),rotadd-rot(a5)
- bsr rotvew
- endc
-
- move.l rotchp-rot(a5),a0
- add.l #rotpic-rotc,a0 ;picture
-
- ifnd calc
- add.l rotbuf-rot(a5),a0
- eor.l #rotpic.e-rotpic,rotbuf-rot(a5)
- endc
-
- clr.l d1
-
- ifnd calc
- move.l rotchp-rot(a5),d1
- add.l #rotcop1-rotc,d1 ;copperlist
- endc
-
- movem.l (sp)+,d2-d7/a1-a6
- rts
-
- getd7
- move.w d0,d1
- divs d2,d1
- and.l #$ffff,d1
- move.l d1,d7
- muls d2,d1
- sub.w d1,d0
- move.l d0,d6
- add.l #1,d7
- rts
-
- rotint ;convert picture bits to bytes
- movem.l d0-d7/a0-a6,-(sp)
-
- ifnd calc
- move.l rotchp-rot(a5),a1
- add.l #rotcoptus.s-rotc,a1
- tst.b (a1) ;init copper ?
- bne rotint.pic
-
- move.l a5,a2
- add.l #rotcoppic+544-rot,a2 ;raw pic
- move.l a5,a4
- add.l #rotcoppic+32-rot,a4 ;palette
-
- move.l rotcopstr-rot(a5),d1
-
- move.w #rotcop_hgt-1,d0
- rotint.g
- move.b d1,(a1) ;y-raster
-
- move.w #5-1,d7
- rotint.h
- move.w #8-1,d6
- rotint.ha
- clr.w d2
- btst d6,(a2)
- beq rotint.hab
- bset #0,d2
- rotint.hab
- btst d6,6(a2)
- beq rotint.hac
- bset #1,d2
- rotint.hac
- btst d6,2*6(a2)
- beq rotint.had
- bset #2,d2
- rotint.had
- btst d6,3*6(a2)
- beq rotint.hae
- bset #3,d2
- rotint.hae
- btst d6,4*6(a2)
- beq rotint.haf
- bset #4,d2
- rotint.haf
- clr.l d3
- move.w d2,d3
- lsl.l #1,d3 ;words
- move.w (a4,d3),d2
- move.w d2,6(a1)
- add.l #4,a1
- dbra d6,rotint.ha ;next bit
-
- add.l #1,a2 ;next byte
- dbra d7,rotint.h
-
- add.l #6*4+1,a2 ;next row
-
- add.l #1,d1
- add.l #4,a1
-
- dbra d0,rotint.g
-
- endc
-
- rotint.pic
- move.l var_bck(a0),a1 ;background picture
- cmp.l #0,a1 ;empty ?
- beq rotint.nopic
-
- cmp.l rotbck-rot(a5),a1 ;already on screen ?
- beq rotint.nopic
-
- clr.l d0
- move.w pic_wid(a1),d0 ;get width
- lsl.l #3,d0 ;*8 for pixelnumber
- cmp.w #rottun_wid,d0 ;bigger than buffer ?
- bgt rotint.nopic
-
- clr.l d1
- move.w pic_hgt(a1),d1 ;heigth
- cmp.w #rottun_hgt,d1 ;bigger than buffer ?
- bgt rotint.nopic
- muls d1,d0 ;* heigth
-
- cmp.l #rotcol_l,d0 ;bigger than buffer ?
- bgt rotint.nopic
-
- move.l a1,rotbck-rot(a5)
-
- lea pic_pal(a1),a2
-
- ifd calc
- move.l rotchp-rot(a5),a3
- add.l #rotpic+pic_pal-rotc,a3
- move.l (a2),(a3)
- move.l 4(a2),4(a3)
- move.l 8(a2),8(a3)
- move.l 12(a2),12(a3)
- move.l 16(a2),16(a3)
- move.l 20(a2),20(a3)
- move.l 24(a2),24(a3)
- move.l 28(a2),28(a3)
-
- move.l 32(a2),32(a3)
- move.l 36(a2),36(a3)
- move.l 40(a2),40(a3)
- move.l 44(a2),44(a3)
- move.l 48(a2),48(a3)
- move.l 52(a2),52(a3)
- move.l 56(a2),56(a3)
- move.l 60(a2),60(a3)
- endc
-
- ifnd calc
- move.l rotchp-rot(a5),a3
- add.l #rotpic2+pic_pal-rotc,a3
- ; move.l (a2),(a3)
- ; move.l 4(a2),4(a3)
- ; move.l 8(a2),8(a3)
- ; move.l 12(a2),12(a3)
- endc
-
- move.l a5,a4
- move.l a5,a6
- add.l #rotcol-rot,a4 ;start colorbuffer
- add.l #rotcol.e-rot,a6
-
- clr.l d0
- move.w pic_wid(a1),d0 ;get width
- lea pic_raw(a1),a2 ;start raw planes
-
- clr.l d1 ;y start position
- rotint.f
- clr.l d6 ;x start position
- rotint.d
-
- move.l #8-1,d7 ;read bits of 1 byte
- rotint.c
-
- clr.l d3 ;colorvalue
- move.l a2,a3
- clr.l d5 ;colorinfo
- rotint.c1
- btst d7,(a2) ;get colorbits
- beq rotint.c0
- bset d5,d3
- rotint.c0
- add.l d0,a2
- add.l #1,d5
- cmp.w pic_dpt(a1),d5
- bne rotint.c1
- move.l a3,a2
-
- move.l d1,d5 ;y pos
- muls #rottun_wid,d5
- ; lsl.l #8,d5 ;*256 (width)
-
- move.l d6,d4 ;x byte pos
- lsl.l #3,d4 ;make pixels
- add.l #7,d4 ;x bit pos
- sub.l d7,d4
-
- move.l a4,a3
- add.l d4,a3
- add.l d5,a3
- move.b d3,(a3)
-
- move.l a6,a3
- add.l d4,a3
- add.l d5,a3
- move.b d3,(a3)
-
- dbra d7,rotint.c
-
- add.l #1,a2 ;next byte
-
- add.l #1,d6
- cmp.l d0,d6
- bne rotint.d
-
- clr.l d4
- move.w pic_dpt(a1),d4
- sub.w #1,d4
- muls d0,d4
- add.l d4,a2
-
- add.l #1,d1
- cmp.w pic_hgt(a1),d1 ;y-end reached ?
- bne rotint.f
-
- bra rotint.end
- rotint.nopic
- ifd calc
- bsr rotcal
- endc
-
- rotint.end
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
- ifd calc
- rotcal ;calculate tunnel
- movem.l d0-d7/a0-a6,-(sp)
-
- move.l #32767-7000,d3 ;size
- rotcal.f
- move.l a5,a3
- add.l #rotcol-rot,a3
- rotcal.d
- move.w #((32767-7000)/256)/1-1,d6 ;sinus pixel heigth
- rotcal.c
- btst #6,($bfe001).l
- beq rotcal.end
-
- lea rotsin,a0
- move.l a3,a1
- move.w #rottun_wid-2,d0 ;tunnel picture width
- rotcal.a
- move.b (a1)+,d1
-
- move.w #4-1,d7 ;sinus pixel width
- rotcal.e
-
- clr.l d2
- move.w (a0)+,d2 ;get sinus
- ext.l d2
- divs.l d3,d2
- ; divs d3,d2
- ext.l d2 ;x
-
- cmp.l #rotpic_wid*4,d2 ;out of border ?
- bge rotcal.not
- cmp.l #-rotpic_wid*4,d2
- blt rotcal.not
-
- move.l a5,a4
- add.l #rotoff-rot,a4
- move.l d2,d5
- add.l #rotpic_wid*4,d5
- lsl.l #2,d5 ;longwords
- add.l d5,a4
-
- add.l #rotpic_wid*4,d2
-
- lea rotpic+pic_raw,a2
- move.l d2,d4
- lsr.l #3,d4
- add.l d4,a2
- lsl.l #3,d4
- eor.b #7,d2
- sub.l d4,d2
-
- clr.l d4
- move.w (((rotsin_l/4)/2)*2)-2(a0),d4 ;get cos
- ext.l d4
- divs.l d3,d4
- ; divs d3,d4
- ext.l d4 ;y
-
- cmp.l #rotpic_hgt/2,d4 ;out of border ?
- bge rotcal.not
- cmp.l #-rotpic_hgt/2,d4
- blt rotcal.not
-
- move.l d4,d5
- add.l #rotpic_hgt/2,d5
- muls #rotpic_wid*8*4,d5 ;longwords
- add.l d5,a4
-
- move.l a1,a6 ;current picture position
- sub.l a5,a6 ;-rot
- sub.l #rotcol-rot,a6 ;-rotcol
- move.l a6,(a4) ;offset table
-
- add.l #rotpic_hgt/2,d4
- muls #rotpic_wid*rotpic_dpt,d4
- add.l d4,a2
-
- ;; moveq.l #0,d4
- rotcal.b2
- ; tst.b d1
- ;; btst d4,d1
- ; beq rotcal.b1
- bset d2,(a2)
- ; bra rotcal.b1a
- ;rotcal.b1
- ;; bclr d2,(a2)
- ;rotcal.b1a
- ;; add.l #rotpic_wid,a2
- ;; add.b #1,d4
- ;; cmp.b #rotpic_dpt,d4
- ;; bne rotcal.b2
-
- rotcal.not
- dbra d7,rotcal.e ;next sinus-position
-
- dbra d0,rotcal.a ;next x-pixel
-
- sub.l #1*1,d3
- cmp.l #0,d3
- ble rotcal.end
- dbra d6,rotcal.c ;next sinus-size
-
- add.l #rottun_wid,a3 ;next tunnelpicture y-row
- move.l a3,d0
- sub.l #rotcol,d0
- cmp.l #256*rottun_wid,d0
- bne rotcal.d
- bra rotcal.f
- rotcal.end
- move.b #1,rotcalcmode
- movem.l (sp)+,d0-d7/a0-a6
- rts
- endc
-
-
- rotvew ;show tunnel on screen
- movem.l d0-d7/a0-a6,-(sp)
- move.l a5,a0
- add.l #rotoff-rot,a0 ;tunnel data
- move.l rotchp-rot(a5),a1
- add.l #rotpic+pic_raw-rotc,a1 ;screen picture
- add.l rotbuf-rot(a5),a1
-
- move.l a5,a6
- add.l #rotcol.e-rot,a6 ;tunnel picture
-
- rotvew.e1
- move.l rotpos-rot(a5),d4
-
- move.l rotadd-rot(a5),d1
- add.l d1,d4
- cmp.l #rottun_hgt*rottun_wid,d4
- blt.s rotvew.e
- sub.l #rottun_hgt*rottun_wid,d4
- rotvew.e
- cmp.l #0,d4
- bge.s rotvew.e2
- add.l #rottun_hgt*rottun_wid,d4
- rotvew.e2
- move.l d4,rotpos-rot(a5)
- sub.l d4,a6
-
- move.w #(rotpic_hgt/2)-1,d6
- rotvew.d
- ; rept ((rotpic_wid)/4)
-
- move.w #rotpic_wid/4-1,d5
- rotvew.d2
-
- moveq.l #0,d4 ;plane 0
-
- movem.l (a0)+,a2-a5
-
- add.l a6,a2
- move.b (a2),d3
- beq.s rotvew.l1
- bset #31,d4
- rotvew.l1
-
- add.l a6,a3
- move.b (a3),d3
- beq.s rotvew.l2
- bset #29,d4
-
- rotvew.l2
- add.l a6,a4
- move.b (a4),d3
- beq.s rotvew.l3
- bset #27,d4
-
- rotvew.l3
- add.l a6,a5
- move.b (a5),d3
- beq.s rotvew.l4
- bset #25,d4
-
- rotvew.l4
- movem.l (a0)+,a2-a5
-
- add.l a6,a2
- move.b (a2),d3
- beq.s rotvew.l5
- bset #23,d4
- rotvew.l5
-
- add.l a6,a3
- move.b (a3),d3
- beq.s rotvew.l6
- bset #21,d4
-
- rotvew.l6
- add.l a6,a4
- move.b (a4),d3
- beq.s rotvew.l7
- bset #19,d4
-
- rotvew.l7
- add.l a6,a5
- move.b (a5),d3
- beq.s rotvew.l8
- bset #17,d4
-
- rotvew.l8
- movem.l (a0)+,a2-a5
-
- add.l a6,a2
- move.b (a2),d3
- beq.s rotvew.l9
- bset #15,d4
- rotvew.l9
-
- add.l a6,a3
- move.b (a3),d3
- beq.s rotvew.l10
- bset #13,d4
-
- rotvew.l10
- add.l a6,a4
- move.b (a4),d3
- beq.s rotvew.l11
- bset #11,d4
-
- rotvew.l11
- add.l a6,a5
- move.b (a5),d3
- beq.s rotvew.l12
- bset #9,d4
-
- rotvew.l12
- movem.l (a0)+,a2-a5
-
- add.l a6,a2
- move.b (a2),d3
- beq.s rotvew.l13
- bset #7,d4
- rotvew.l13
-
- add.l a6,a3
- move.b (a3),d3
- beq.s rotvew.l14
- bset #5,d4
-
- rotvew.l14
- add.l a6,a4
- move.b (a4),d3
- beq.s rotvew.l15
- bset #3,d4
-
- rotvew.l15
- add.l a6,a5
- move.b (a5),d3
- beq.s rotvew.l16
- bset #1,d4
-
- rotvew.l16
- move.l d4,(a1)+
-
- ; endr
- dbra d5,rotvew.d2
-
- add.l #(1*(rotpic_wid*rotpic_dpt))+(rotpic_wid*(rotpic_dpt-1)),a1
- dbra d6,rotvew.d
-
-
- rotvew.end
- movem.l (sp)+,d0-d7/a0-a6
- rts
-
-
- rotchp dc.l 0
- rotadd dc.l 0
- rotbuf dc.l 0
- rotcopbuf dc.l 0
- rotbck dc.l 0
- rotpos dc.l 0
- rotcopstr dc.l $73
-
- rotaddtab
- dc.l rottun_wid ;erin
- dc.l rottun_wid+1 ;links erin
- dc.l rottun_wid-1 ;rechts erin
- dc.l -rottun_wid ;eruit
- dc.l -rottun_wid-1 ;links eruit
- dc.l -rottun_wid+1 ;rechts eruit
- dc.l rottun_wid+2 ;links snel erin
- dc.l rottun_wid-2 ;rechts snel erin
- dc.l -rottun_wid-2 ;links snel eruit
- dc.l -rottun_wid+2 ;rechts snel eruit
- dc.l 0
- dc.l rottun_wid*2 ;erin
- dc.l (rottun_wid*2)+1 ;links erin
- dc.l (rottun_wid*2)-1 ;rechts erin
- dc.l -(rottun_wid*2) ;eruit
- dc.l -(rottun_wid*2)-1 ;links eruit
- dc.l -(rottun_wid*2)+1 ;rechts eruit
- dc.l (rottun_wid*2)+2 ;links snel erin
- dc.l (rottun_wid*2)-2 ;rechts snel erin
- dc.l -(rottun_wid*2)-2 ;links snel eruit
- dc.l -(rottun_wid*2)+2 ;rechts snel eruit
-
- dc.l rottun_wid*70+70 ;psycho !!!
-
- ds.l 26
-
-
- ifd calc
- rotcalcmode dc.l 0
- rotsin ;(360 graden / rottun_wid / 4) + een beetje ; no 0 value !
-
- dc.w 1,161,322,483,643,804,965,1126,1286,1447,1608,1768
- dc.w 1929,2090,2250,2411,2571,2731,2892,3052,3212,3372,3532,3692
- dc.w 3851,4011,4171,4330,4490,4649,4808,4967,5126,5285,5444,5602
- dc.w 5761,5919,6077,6235,6393,6550,6708,6865,7023,7180,7336,7493
- dc.w 7650,7806,7962,8118,8274,8429,8585,8740,8895,9049,9204,9358
- dc.w 9512,9666,9819,9973,10126,10279,10431,10584,10736,10888,11039,11191
- dc.w 11342,11492,11643,11793,11943,12093,12242,12391,12540,12688,12836,12984
- dc.w 13132,13279,13426,13572,13719,13865,14010,14155,14300,14445,14589,14733
- dc.w 14876,15020,15162,15305,15447,15588,15730,15871,16011,16151,16291,16430
- dc.w 16569,16708,16846,16984,17121,17258,17395,17531,17666,17802,17937,18071
- dc.w 18205,18338,18472,18604,18736,18868,18999,19130,19261,19390,19520,19649
- dc.w 19777,19905,20033,20160,20286,20413,20538,20663,20788,20912,21035,21159
- dc.w 21281,21403,21525,21646,21766,21886,22006,22125,22243,22361,22478,22595
- dc.w 22711,22827,22942,23056,23170,23284,23397,23509,23621,23732,23843,23953
- dc.w 24062,24171,24279,24387,24494,24601,24707,24812,24917,25021,25125,25228
- dc.w 25330,25432,25533,25633,25733,25832,25931,26029,26126,26223,26319,26415
- dc.w 26510,26604,26698,26790,26883,26974,27065,27156,27245,27334,27423,27511
- dc.w 27598,27684,27770,27855,27939,28023,28106,28188,28270,28351,28431,28511
- dc.w 28590,28668,28746,28822,28899,28974,29049,29123,29196,29269,29341,29412
- dc.w 29483,29552,29622,29690,29758,29825,29891,29956,30021,30085,30149,30211
- dc.w 30273,30334,30395,30455,30514,30572,30629,30686,30742,30798,30852,30906
- dc.w 30959,31011,31063,31114,31164,31213,31262,31309,31357,31403,31448,31493
- dc.w 31537,31580,31623,31665,31706,31746,31785,31824,31862,31899,31936,31971
- dc.w 32006,32040,32073,32106,32138,32169,32199,32228,32257,32285,32312,32338
- dc.w 32364,32389,32413,32436,32458,32480,32501,32521,32540,32559,32576,32593
- dc.w 32609,32625,32639,32653,32666,32678,32690,32700,32710,32719,32728,32735
- dc.w 32742,32748,32753,32757,32761,32763,32765,32767,32767,32767,32765,32763
- dc.w 32761,32757,32753,32748,32742,32735,32727,32719,32710,32700,32690,32678
- dc.w 32666,32653,32639,32624,32609,32593,32576,32558,32540,32520,32500,32479
- dc.w 32458,32435,32412,32388,32363,32338,32311,32284,32256,32228,32198,32168
- dc.w 32137,32105,32073,32039,32005,31970,31935,31898,31861,31823,31785,31745
- dc.w 31705,31664,31622,31580,31536,31492,31447,31402,31355,31308,31261,31212
- dc.w 31163,31113,31062,31010,30958,30905,30851,30796,30741,30685,30628,30571
- dc.w 30512,30453,30394,30333,30272,30210,30147,30084,30020,29955,29889,29823
- dc.w 29756,29689,29620,29551,29481,29411,29339,29267,29195,29121,29047,28972
- dc.w 28897,28821,28744,28666,28588,28509,28429,28349,28268,28186,28104,28021
- dc.w 27937,27853,27768,27682,27596,27509,27421,27333,27243,27154,27063,26972
- dc.w 26881,26788,26696,26602,26508,26413,26317,26221,26124,26027,25929,25830
- dc.w 25731,25631,25531,25429,25328,25225,25122,25019,24915,24810,24704,24599
- dc.w 24492,24385,24277,24169,24060,23950,23840,23730,23618,23507,23394,23281
- dc.w 23168,23054,22939,22824,22709,22592,22475,22358,22240,22122,22003,21884
- dc.w 21764,21643,21522,21400,21278,21156,21033,20909,20785,20660,20535,20410
- dc.w 20284,20157,20030,19902,19774,19646,19517,19388,19258,19127,18996,18865
- dc.w 18733,18601,18469,18335,18202,18068,17934,17799,17663,17528,17392,17255
- dc.w 17118,16981,16843,16705,16566,16427,16288,16148,16008,15867,15726,15585
- dc.w 15444,15301,15159,15016,14873,14730,14586,14442,14297,14152,14007,13861
- dc.w 13715,13569,13422,13276,13128,12981,12833,12685,12536,12388,12239,12089
- dc.w 11940,11790,11639,11489,11338,11187,11036,10884,10732,10580,10428,10275
- dc.w 10122,9969,9816,9662,9508,9354,9200,9046,8891,8736,8581,8426
- dc.w 8270,8114,7958,7802,7646,7489,7333,7176,7019,6862,6704,6547
- dc.w 6389,6231,6073,5915,5757,5598,5440,5281,5122,4963,4804,4645
- dc.w 4486,4326,4167,4007,3848,3688,3528,3368,3208,3048,2888,2727
- dc.w 2567,2407,2246,2086,1925,1765,1604,1443,1283,1122,961,800
- dc.w 639,479,318,157,-3,-164,-325,-486,-647,-808,-968,-1129
- dc.w -1290,-1451,-1611,-1772,-1933,-2093,-2254,-2414,-2574,-2735,-2895,-3055
- dc.w -3215,-3375,-3535,-3695,-3855,-4015,-4174,-4334,-4493,-4652,-4812,-4971
- dc.w -5130,-5288,-5447,-5606,-5764,-5922,-6080,-6238,-6396,-6554,-6711,-6869
- dc.w -7026,-7183,-7340,-7497,-7653,-7809,-7966,-8121,-8277,-8433,-8588,-8743
- dc.w -8898,-9053,-9207,-9362,-9516,-9669,-9823,-9976,-10129,-10282,-10435,-10587
- dc.w -10739,-10891,-11043,-11194,-11345,-11496,-11646,-11797,-11946,-12096,-12245,-12394
- dc.w -12543,-12692,-12840,-12988,-13135,-13282,-13429,-13576,-13722,-13868,-14014,-14159
- dc.w -14304,-14448,-14592,-14736,-14880,-15023,-15166,-15308,-15450,-15592,-15733,-15874
- dc.w -16014,-16155,-16294,-16434,-16573,-16711,-16849,-16987,-17124,-17261,-17398,-17534
- dc.w -17670,-17805,-17940,-18074,-18208,-18342,-18475,-18607,-18739,-18871,-19002,-19133
- dc.w -19264,-19393,-19523,-19652,-19780,-19908,-20036,-20163,-20289,-20415,-20541,-20666
- dc.w -20791,-20915,-21038,-21161,-21284,-21406,-21528,-21649,-21769,-21889,-22008,-22127
- dc.w -22246,-22364,-22481,-22598,-22714,-22829,-22945,-23059,-23173,-23287,-23399,-23512
- dc.w -23623,-23735,-23845,-23955,-24065,-24174,-24282,-24390,-24497,-24603,-24709,-24815
- dc.w -24919,-25023,-25127,-25230,-25332,-25434,-25535,-25636,-25735,-25835,-25933,-26031
- dc.w -26129,-26225,-26322,-26417,-26512,-26606,-26700,-26793,-26885,-26976,-27067,-27158
- dc.w -27247,-27336,-27425,-27513,-27600,-27686,-27772,-27857,-27941,-28025,-28108,-28190
- dc.w -28272,-28353,-28433,-28513,-28591,-28670,-28747,-28824,-28900,-28976,-29050,-29124
- dc.w -29198,-29270,-29342,-29414,-29484,-29554,-29623,-29691,-29759,-29826,-29892,-29958
- dc.w -30023,-30087,-30150,-30213,-30275,-30336,-30396,-30456,-30515,-30573,-30631,-30687
- dc.w -30743,-30799,-30853,-30907,-30960,-31012,-31064,-31115,-31165,-31214,-31263,-31310
- dc.w -31357,-31404,-31449,-31494,-31538,-31581,-31624,-31665,-31706,-31747,-31786,-31825
- dc.w -31863,-31900,-31936,-31972,-32007,-32041,-32074,-32106,-32138,-32169,-32199,-32229
- dc.w -32257,-32285,-32312,-32339,-32364,-32389,-32413,-32436,-32458,-32480,-32501,-32521
- dc.w -32540,-32559,-32576,-32593,-32609,-32625,-32639,-32653,-32666,-32678,-32690,-32700
- dc.w -32710,-32719,-32727,-32735,-32741,-32747,-32752,-32757,-32760,-32763,-32765,-32766
- dc.w -32767,-32766,-32765,-32763,-32760,-32756,-32752,-32747,-32741,-32734,-32727,-32718
- dc.w -32709,-32699,-32689,-32677,-32665,-32652,-32638,-32623,-32608,-32592,-32575,-32557
- dc.w -32539,-32519,-32499,-32478,-32457,-32434,-32411,-32387,-32362,-32337,-32310,-32283
- dc.w -32255,-32226,-32197,-32167,-32136,-32104,-32071,-32038,-32004,-31969,-31933,-31897
- dc.w -31860,-31822,-31783,-31743,-31703,-31662,-31620,-31578,-31535,-31490,-31446,-31400
- dc.w -31354,-31307,-31259,-31210,-31161,-31111,-31060,-31008,-30956,-30903,-30849,-30794
- dc.w -30739,-30683,-30626,-30569,-30510,-30451,-30392,-30331,-30270,-30208,-30145,-30082
- dc.w -30018,-29953,-29887,-29821,-29754,-29686,-29618,-29549,-29479,-29408,-29337,-29265
- dc.w -29192,-29119,-29045,-28970,-28894,-28818,-28741,-28664,-28585,-28507,-28427,-28347
- dc.w -28266,-28184,-28101,-28018,-27935,-27850,-27765,-27679,-27593,-27506,-27418,-27330
- dc.w -27241,-27151,-27061,-26970,-26878,-26786,-26693,-26599,-26505,-26410,-26314,-26218
- dc.w -26121,-26024,-25926,-25827,-25728,-25628,-25528,-25426,-25325,-25222,-25119,-25016
- dc.w -24912,-24807,-24701,-24595,-24489,-24382,-24274,-24166,-24057,-23947,-23837,-23727
- dc.w -23615,-23504,-23391,-23278,-23165,-23051,-22936,-22821,-22705,-22589,-22472,-22355
- dc.w -22237,-22119,-22000,-21880,-21760,-21640,-21519,-21397,-21275,-21153,-21029,-20906
- dc.w -20782,-20657,-20532,-20406,-20280,-20154,-20027,-19899,-19771,-19643,-19514,-19384
- dc.w -19254,-19124,-18993,-18862,-18730,-18598,-18465,-18332,-18199,-18065,-17930,-17795
- dc.w -17660,-17524,-17388,-17252,-17115,-16977,-16840,-16701,-16563,-16424,-16285,-16145
- dc.w -16005,-15864,-15723,-15582,-15440,-15298,-15156,-15013,-14870,-14726,-14582,-14438
- dc.w -14294,-14149,-14003,-13858,-13712,-13566,-13419,-13272,-13125,-12977,-12830,-12681
- dc.w -12533,-12384,-12235,-12086,-11936,-11786,-11636,-11486,-11335,-11184,-11032,-10881
- dc.w -10729,-10577,-10424,-10272,-10119,-9966,-9813,-9659,-9505,-9351,-9197,-9042
- dc.w -8888,-8733,-8578,-8422,-8267,-8111,-7955,-7799,-7643,-7486,-7329,-7173
- dc.w -7016,-6858,-6701,-6543,-6386,-6228,-6070,-5912,-5754,-5595,-5437,-5278
- dc.w -5119,-4960,-4801,-4642,-4483,-4323,-4164,-4004,-3845,-3685,-3525,-3365
- dc.w -3205,-3045,-2885,-2724,-2564,-2404,-2243,-2083,-1922,-1762,-1601,-1440
- dc.w -1280,-1119,-958,-797,-636,-476,-315,-154
- rotsin.e
-
- dc.w 1,161,322,483,643,804,965,1126,1286,1447,1608,1768
- dc.w 1929,2090,2250,2411,2571,2731,2892,3052,3212,3372,3532,3692
- dc.w 3851,4011,4171,4330,4490,4649,4808,4967,5126,5285,5444,5602
- dc.w 5761,5919,6077,6235,6393,6550,6708,6865,7023,7180,7336,7493
- dc.w 7650,7806,7962,8118,8274,8429,8585,8740,8895,9049,9204,9358
- dc.w 9512,9666,9819,9973,10126,10279,10431,10584,10736,10888,11039,11191
- dc.w 11342,11492,11643,11793,11943,12093,12242,12391,12540,12688,12836,12984
- dc.w 13132,13279,13426,13572,13719,13865,14010,14155,14300,14445,14589,14733
- dc.w 14876,15020,15162,15305,15447,15588,15730,15871,16011,16151,16291,16430
- dc.w 16569,16708,16846,16984,17121,17258,17395,17531,17666,17802,17937,18071
- dc.w 18205,18338,18472,18604,18736,18868,18999,19130,19261,19390,19520,19649
- dc.w 19777,19905,20033,20160,20286,20413,20538,20663,20788,20912,21035,21159
- dc.w 21281,21403,21525,21646,21766,21886,22006,22125,22243,22361,22478,22595
- dc.w 22711,22827,22942,23056,23170,23284,23397,23509,23621,23732,23843,23953
- dc.w 24062,24171,24279,24387,24494,24601,24707,24812,24917,25021,25125,25228
- dc.w 25330,25432,25533,25633,25733,25832,25931,26029,26126,26223,26319,26415
- dc.w 26510,26604,26698,26790,26883,26974,27065,27156,27245,27334,27423,27511
- dc.w 27598,27684,27770,27855,27939,28023,28106,28188,28270,28351,28431,28511
- dc.w 28590,28668,28746,28822,28899,28974,29049,29123,29196,29269,29341,29412
- dc.w 29483,29552,29622,29690,29758,29825,29891,29956,30021,30085,30149,30211
- dc.w 30273,30334,30395,30455,30514,30572,30629,30686,30742,30798,30852,30906
- dc.w 30959,31011,31063,31114,31164,31213,31262,31309,31357,31403,31448,31493
- dc.w 31537,31580,31623,31665,31706,31746,31785,31824,31862,31899,31936,31971
- dc.w 32006,32040,32073,32106,32138,32169,32199,32228,32257,32285,32312,32338
- dc.w 32364,32389,32413,32436,32458,32480,32501,32521,32540,32559,32576,32593
- dc.w 32609,32625,32639,32653,32666,32678,32690,32700,32710,32719,32728,32735
- dc.w 32742,32748,32753,32757,32761,32763,32765,32767,32767,32767,32765,32763
- dc.w 32761,32757,32753,32748,32742,32735,32727,32719,32710,32700,32690,32678
- dc.w 32666,32653,32639,32624,32609,32593,32576,32558,32540,32520,32500,32479
-
- rotsin_l equ rotsin.e-rotsin
- endc
-
- rotoff
- ifd calc
- ds.l rotpic_wid*8*rotpic_hgt
- endc
- ifnd calc
- incbin 'w:binaga/tun1.bin'
- cnop 0,2
- endc
- rotoff.e
- ;rotoff_l equ rotoff.e-rotoff
-
- rotcol ds.b rottun_hgt*rottun_wid
- rotcol.e
- ds.b rottun_hgt*rottun_wid
-
- rotcol_l equ rotcol.e-rotcol
-
- rotcoppic incbin 'w:bin/coppertunnel_l32.bin'
-
- rotp.e
-
- SECTION 11,code_c
- cnop 0,8
- rotc
- ifnd ocs
- dc.l 'ROTA'
- endc
- ifd ocs
- dc.l 'ROTO'
- endc
- rts
- cnop 0,8
-
- ifd calc
- rotpic
- ifnd ocs
- dc.l 'PICT'
- dc.w rotpic_wid,rotpic_hgt,rotpic_dpt,1,0
- ds.b 8*4
- ds.b 16
- dc.w 32-1
- dc.w $000,0,$00f,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
- dc.w $000,0,$00f,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
- dc.w $000,0,$00f,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
- dc.w $000,0,$00f,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
- ds.l 256-32
- ds.b rotpic_wid*rotpic_hgt*rotpic_dpt
- endc
- ifd ocs
- dc.l 'PICT'
- dc.w rotpic_wid,rotpic_hgt,rotpic_dpt,1,0
- ds.b 4*4
- dc.w 32-1
- dc.w $000,$00f,$0f0,$0ff,$f00,$f0f,$ff0,$fff
- dc.w $000,$00f,$0f0,$0ff,$f00,$f0f,$ff0,$fff
- dc.w $000,$00f,$0f0,$0ff,$f00,$f0f,$ff0,$fff
- dc.w $000,$00f,$0f0,$0ff,$f00,$f0f,$ff0,$fff
- ds.w 256-32
- ds.b rotpic_wid*rotpic_hgt*rotpic_dpt
- endc
- endc
-
- ifnd calc
- cnop 0,8
- rotpic
- ifnd ocs
- dc.l 'PICT'
- dc.w rotpic_wid,rotpic_hgt,rotpic_dpt,1,0
- ds.b 8*4
- ds.b 16
- dc.w 8-1
- dc.w $000,0,$fff,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
- ds.l 256-8
- ds.b rotpic_wid*rotpic_hgt*rotpic_dpt
- endc
- ifd ocs
- dc.l 'PICT'
- dc.w rotpic_wid,rotpic_hgt,rotpic_dpt,1,0
- ds.b 4*4
- dc.w 8-1
- dc.w $000,$fff,$0f0,$0ff,$f00,$f0f,$ff0,$fff
- ds.w 256-8
- ds.b rotpic_wid*rotpic_hgt*rotpic_dpt
- endc
- rotpic.e
- cnop 0,8
- rotpic2
- ifnd ocs
- dc.l 'PICT'
- dc.w rotpic_wid,rotpic_hgt,rotpic_dpt,1,0
- ds.b 8*4
- ds.b 16
- dc.w 8-1
- dc.w $000,0,$fff,0,$0f0,0,$0ff,0,$f00,0,$f0f,0,$ff0,0,$fff,0
- ds.l 256-8
- ds.b rotpic_wid*rotpic_hgt*rotpic_dpt
- endc
- ifd ocs
- dc.l 'PICT'
- dc.w rotpic_wid,rotpic_hgt,rotpic_dpt,1,0
- ds.b 4*4
- dc.w 7
- dc.w $000,$fff,$0f0,$0ff,$f00,$f0f,$ff0,$fff
- ds.w 256-8
- ds.b rotpic_wid*rotpic_hgt*rotpic_dpt
- endc
- endc
-
- cnop 0,8
-
- ifnd calc
- rotcop1
- dc.w $80,0,$82,0
-
- rotcoptus.s
- dc.w $003d,$fffe
- dc.w $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
- dc.w $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
- dc.w $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
- dc.w $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
- dc.w $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
- rotcoptus.e
- rotcoptus_l equ rotcoptus.e-rotcoptus.s
-
- rept rotcop_hgt-1
- dc.w $003d,$fffe
- dc.w $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
- dc.w $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
- dc.w $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
- dc.w $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
- dc.w $182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0,$182,0
- endr
- dc.w $088,$000
- endc
- rotc.e
- rot.e
-
- ;**********************************************************************
-
- ifd rout
- rotsrc
- incbin 'w:effectaga/tunnel1_l2.bck'
- ; incbin 'w:effectaga/world_l8.bck'
- ; incbin 'w:effectaga/copperpic_l8.bck'
- ; incbin 'w:effectaga/copperpic_l64.bck'
- cnop 0,2
- endc
-
-